package cn.iocoder.yudao.module.business.service.trainUnit;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.business.controller.admin.trainUnit.vo.TrainUnitPageReqVO;
import cn.iocoder.yudao.module.business.controller.admin.trainUnit.vo.TrainUnitSaveReqVO;
import cn.iocoder.yudao.module.business.dal.dataobject.trainUnit.TrainUnitDO;


import javax.validation.Valid;

/**
 * 培训单位 Service 接口
 *
 * @author admin
 */
public interface TrainUnitService {

    /**
     * 创建培训单位
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createTrainUnit(@Valid TrainUnitSaveReqVO createReqVO);

    /**
     * 更新培训单位
     *
     * @param updateReqVO 更新信息
     */
    void updateTrainUnit(@Valid TrainUnitSaveReqVO updateReqVO);

    /**
     * 删除培训单位
     *
     * @param id 编号
     */
    void deleteTrainUnit(Long id);

    /**
     * 获得培训单位
     *
     * @param id 编号
     * @return 培训单位
     */
    TrainUnitDO getTrainUnit(Long id);

    /**
     * 获得培训单位分页
     *
     * @param pageReqVO 分页查询
     * @return 培训单位分页
     */
    PageResult<TrainUnitDO> getTrainUnitPage(TrainUnitPageReqVO pageReqVO);


    /**
     * 同步培训单位
     * @param pageReqVO 分页参数
     * @return count
     */
    int executeSyncTrainUnit(TrainUnitPageReqVO pageReqVO);
}